1 Result

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.imooc.miaosha.result;
public class Result<T> {
private int code;
private String msg;
private T data;

//⭐️
private Result(CodeMsg cm) {
if (cm == null) {
return;
}
this.code = cm.getCode();
this.msg = cm.getMsg();
}

private Result(T data) {
this.code = 0;
this.msg = "success";
this.data = data;
}

/**
* 失败的时候调用
*/
public static <T> Result<T> error(CodeMsg cm) {
return new Result<T>(cm);
}

/**
* 成功的时候调用
*
* @param code
*/
public static <T> Result<T> success(T data) {
return new Result<T>(data);
}


//2 生成构造方法
public Result(int code) {
this.code = code;
}

public Result(String msg) {
this.msg = msg;
}

//3。get/set方法
public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public T getData() {
return data;
}

public void setData(T data) {
this.data = data;
}
}

2 CodeMsg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.imooc.miaosha.result;

public class CodeMsg {
private int code;
private String msg;
//通用异常
public static CodeMsg SUCCESS = new CodeMsg(0, "success");
public static CodeMsg SERVER_NAME = new CodeMsg(50001, "服务端异常");

//登录模块 5002XX
//商品模块 5003XX
//订单模块 5004XX
//秒杀模块 5005XX
private CodeMsg(int code, String msg) {
this.code = code;
this.msg = msg;
}

public int getCode() {
return code;
}

public String getMsg() {
return msg;
}

public static CodeMsg getSUCCESS() {
return SUCCESS;
}

public static CodeMsg getServerName() {
return SERVER_NAME;
}
}

3 调用要➕@ResponseBody注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@RequestMapping("/resultsuccess")
@ResponseBody
public Result<String> resultsuccess() {

//⭐️⭐️⭐️⭐️⭐️
/**1.返回成功的时候调用
* public static <T> Result<T> success(T data) {
* return new Result<T>(data);
* }
*
* private Result(T data) {
* this.code = 0;
* this.msg = "success";
* this.data = data;
* }
* 1.Result.success(data);
* 结果:
* {
* "code": 0,
* "msg": "success",
* "data": "hello immooc"
* }
*/

return Result.success("hello immooc");

}




===================================

===================================

@RequestMapping("/resulterror")
@ResponseBody
public Result<String> resultError() {
/**
* 2。失败的时候调用
* public static <T> Result<T> error(CodeMsg cm) {
* return new Result<T>(cm);
* }
*
* private Result(CodeMsg cm) {
* if (cm == null) {
* return;
* }
* this.code = cm.getCode();
* this.msg = cm.getMsg();
* }
* 2 Result.error(CodeMsg.SERVER_NAME)
* public static CodeMsg SERVER_NAME = new CodeMsg(50001, "服务端异常");
*
* 结果 {
* "code": 50001,
* "msg": "服务端异常",
* "data": null
* }
* 分析:
* 因为CodeMsg SUCCESS 用static修饰了
* public static CodeMsg SUCCESS = new CodeMsg(0, "success");
* 所以可以使用类.属性.属性的方式获得
* CodeMsg.SUCCESS.code=50001
* CodeMsg.SUCCESS.msg="服务端异常"
*/
return Result.error(CodeMsg.SERVER_NAME);

}